昨天我開始建立自己的 SSH 偵測規則。
目標很明確:
SSH 登入失敗
↓
符合設定條件
↓
觸發自訂 Rule
↓
產生 Alert
而這次我建立的自訂規則編號是:
Rule ID:100002
今天不再繼續講規則原理,直接進行實際測試,確認這條 Rule 到底有沒有正常運作。
修改完 Local Rule 之後,第一件事情不是馬上開始測試,而是先確認 Wazuh Manager 能不能正常載入設定。
重新啟動:
sudo systemctl restart wazuh-manager
接著確認狀態:
sudo systemctl status wazuh-manager
如果 Manager 可以正常啟動,代表至少沒有因為規則格式錯誤而導致服務啟動失敗。
接著回到 Windows PowerShell。
對 Ubuntu:
192.168.212.128
進行 SSH 登入:
ssh hacker@192.168.212.128
並故意輸入錯誤密碼。
Permission denied, please try again.
為了確認自訂規則是否能符合設定條件,我重複進行了幾次登入測試。
這次的重點已經不是確認 SSH 能不能連線,而是:
Rule 100002 到底會不會被觸發?
完成測試之後,回到 Wazuh Dashboard 查看 Security Events。
接著搜尋:
rule.id:100002
如果設定成功,就能找到自己的自訂 Rule。
在我的測試中,最後成功看到:
Rule ID:100002
以及我設定的 SSH 登入失敗警報內容。

看到這筆事件,就代表前面建立的 Local Rule 已經成功被 Wazuh 載入,而且實際的 SSH 登入測試也符合了規則條件。
這次成功出現 Rule 100002,其實代表前面幾天做的東西已經全部串起來了。
Windows
↓
SSH 登入失敗
↓
Ubuntu 產生 Log
↓
Wazuh Agent 收集
↓
Decoder 解析
↓
既有 SSH Event
↓
Custom Rule 100002
↓
Alert
從一開始只看到:
Permission denied
到現在已經可以讓自己建立的規則產生警報。
這也是第一次真正把「自己的偵測邏輯」放進 Wazuh。
雖然 Rule 100002 已經成功,但現在系統做的事情其實只有:
發現異常
↓
產生 Alert
攻擊來源還是可以繼續嘗試連線。
也就是:
偵測成功 ✓
告警成功 ✓
自動處理 ✗
這就帶出下一個問題。
如果 Wazuh 已經知道:
Rule 100002 被觸發
那能不能直接讓系統:
Rule 100002
↓
取得來源 IP
↓
自動執行 Response
↓
封鎖來源連線
這就會進入後面的 Active Response。
今天沒有增加新的偵測功能,而是驗證昨天建立的自訂 Rule 是否真的能運作。
最後成功在 Wazuh Dashboard 找到:
Rule ID:100002
代表:
SSH Log
↓
Wazuh
↓
Custom Rule
↓
Alert
這條流程已經成功建立。
但目前 Wazuh 還只是:
「看到攻擊,然後告訴我。」
接下來我希望它做到的是:
「看到攻擊,直接做出回應。」
現在 Rule 100002 已經成功產生警報。
下一篇先從 Dashboard 實際追查這筆事件:
誰在嘗試登入?
↓
來源 IP 是什麼?
↓
使用哪個帳號?
↓
哪條 Rule 被觸發?
把這些資訊整理完成之後,就準備正式進入:
Active Response。